package models;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;

import play.data.validation.Required;

@Entity
public class Alimento extends Comible {
	
	@Required
	@Enumerated(EnumType.STRING)
	private TipoAlimento tipo;
	
	@Required
	private Integer caloriasPorPorcion;
	
	@Required
	private Integer gramosPorPorcion;
	
	@Required
	@Enumerated(EnumType.STRING)
	private UnidadPorcion unidadPorcion; // por ejemplo: gramos, cucharada, taza
	
	@Required
	private Integer cantidadUnidadesPorcion; // por ejemplo: 100, 2, 1
	
	public Alimento(String nombre) {
		super(nombre);
	}

	@Override
	protected Integer calcularCalorias() {
		return this.getCaloriasPorPorcion();
	}

	public TipoAlimento getTipo() {
		return tipo;
	}

	public void setTipo(TipoAlimento tipo) {
		this.tipo = tipo;
	}

	public Integer getCaloriasPorPorcion() {
		return caloriasPorPorcion;
	}

	public void setCaloriasPorPorcion(Integer caloriasPorPorcion) {
		this.caloriasPorPorcion = caloriasPorPorcion;
	}

	public Integer getGramosPorPorcion() {
		return gramosPorPorcion;
	}

	public void setGramosPorPorcion(Integer gramosPorPorcion) {
		this.gramosPorPorcion = gramosPorPorcion;
	}

	public UnidadPorcion getUnidadPorcion() {
		return unidadPorcion;
	}

	public void setUnidadPorcion(UnidadPorcion unidadPorcion) {
		this.unidadPorcion = unidadPorcion;
	}

	public Integer getCantidadUnidadesPorcion() {
		return cantidadUnidadesPorcion;
	}

	public void setCantidadUnidadesPorcion(Integer cantidadUnidadesPorcion) {
		this.cantidadUnidadesPorcion = cantidadUnidadesPorcion;
	}

	@Override
	public String toString() {
		return "Tipo=" + this.tipo + ","
				+ "Unidades por Pocion=" + this.cantidadUnidadesPorcion + ","
				+ "Gramos por Porcion=" + this.gramosPorPorcion + ","
				+ "Calorias por Pocion=" + this.caloriasPorPorcion + ","
				+ "Unidad de la Porcion=" + this.unidadPorcion + ","
				+ super.toString();
	}
}
